interface ParticleEntry {
  /** 当前 x位置 */
  x: number;
  /** 当前 y位置 */
  y: number;
  /** 粒子存活时长，单位：帧 */
  lifetime?: number;
  /** 运动速度 */
  speed?: number;
  /** 运动弧度 */
  angle?: number;
  /** 路径计算公式，可选如下
   * @param x 
   * @param t 当前时间值，从0开始
   */
  path?: string;
  /** 重力开关，设置后需要设置粒子质量 */
  gravity?: boolean;
  /** 粒子质量 */
  quality?: number;
}

/** 粒子 */
export default class Particle {
  private state: ParticleEntry = {
    x: 0,
    y: 0,
    lifetime: 3000,
    speed: 0.02,
    angle: 0,
    path: undefined,
  }

  constructor(options: ParticleEntry) {
    this.state = {...this.state, ...options}
  }

  get x() { return this.state.x }
  get y() { return this.state.y }

  /** 销毁 */
  destroy() {}
}